package com.lau.dicttranslator.controller;

import com.lau.dicttranslator.model.CacheExampleModel;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 缓存测试控制器
 * 演示不同缓存配置的效果
 */
@RestController
@RequestMapping("/api/cache")
public class CacheTestController {
    
    /**
     * 测试动态缓存配置
     * 返回具有不同缓存策略的对象
     */
    @GetMapping("/test")
    public CacheExampleModel testDynamicCache() {
        CacheExampleModel model = new CacheExampleModel();
        model.setId(1L);
        model.setName("缓存测试示例");
        
        // 设置不同的字段值用于测试缓存
        model.setGender("M");          // 2小时缓存
        model.setDeptId("001");        // 1小时缓存  
        model.setEducation("bachelor"); // 30分钟缓存
        model.setStatus("active");     // 禁用缓存
        model.setPriority(1);          // 24小时缓存
        
        return model;
    }
    
    /**
     * 测试多次访问，观察缓存效果
     */
    @GetMapping("/multiple")
    public String testMultipleCalls() {
        // 创建多个对象，测试缓存命中情况
        CacheExampleModel model1 = new CacheExampleModel();
        model1.setGender("M");
        model1.setDeptId("001");
        
        CacheExampleModel model2 = new CacheExampleModel();
        model2.setGender("M");  // 应该命中缓存
        model2.setDeptId("002"); // 不同值，不会命中缓存
        
        return "测试完成，请查看日志以观察缓存命中情况";
    }
} 